package models

import "gorm.io/gorm"

type Order struct {
	gorm.Model
	UserId     int     `gorm:"type:int(11);comment:用户id" json:"userId"`
	GoodsId    int     `gorm:"type:int(11);comment:商品id" json:"goodsId"`
	OrderSn    string  `gorm:"type:char(36);comment:订单编号" json:"orderSn"`
	OrderTotal float64 `gorm:"type:decimal(10,2);comment:订单总金额" json:"orderTotal"`
	Status     int     `gorm:"type:int(1);default:0;comment:订单状态：0交易创建 1未付款交易超时 2交易支付成功 3交易结束" json:"status"`
}

type OrderGoods struct {
	gorm.Model
	UserId     int     `gorm:"type:int(11);comment:用户id" json:"userId"`
	GoodsId    int     `gorm:"type:int(11);comment:商品id" json:"goodsId"`
	OrderSn    string  `gorm:"type:char(36);comment:订单编号" json:"orderSn"`
	OrderTotal float64 `gorm:"type:decimal(10,2);comment:订单总金额" json:"orderTotal"`
	Status     int     `gorm:"type:int(1);default:0;comment:订单状态：0交易创建 1未付款交易超时 2交易支付成功 3交易结束" json:"status"`
	GoodsTitle string  `gorm:"type:varchar(50);comment:商品标题" json:"goodsTitle"`
	GoodsPrice float64 `gorm:"type:decimal(10,2);comment:商品价格" json:"goodsPrice"`
}

// 订单创建
func (o *Order) Create() error {
	return DB.Debug().Create(&o).Error
}

// 修改订单状态
func (o *Order) UpdateOrderStatus(orderSn string, status int) error {
	return DB.Debug().Model(Order{}).Where("order_sn = ?", orderSn).Update("status", status).Error
}

// 创建订单商品表
func (og *OrderGoods) Create() error {
	return DB.Debug().Create(&og).Error
}
